YOLO输出大中小目标的AP值 您所在的位置:网站首页 yoloV5 AP是多少 YOLO输出大中小目标的AP值

YOLO输出大中小目标的AP值

2023-06-28 13:06| 来源: 网络整理| 查看: 265

在进行实验的过程中,博主一直使用的是COCO数据集,其评价指标如下所示,包含大中小目标的AP值与AR值。博主选用了yolov5与yolov7进行实验,其中yolov5成功,yolov7却出现了问题。

在这里插入图片描述

随后博主在进行对比实验时使用了YOLO模型,其默认是不输出大中小目标的AP值的,为了能够获取这个评价指标值,我们需要对val.py文件进行修改。

下载依赖

首先是我们所需的依赖包:pycocotools

pip install pycocotools 数据集测试

yolov5要执行val.py。yolov7中是test.py,需要加载我们的训练完成的模型文件,其参数与训练时大致相同。

修改文件

首先是将--save-json加上default="True"

parser.add_argument('--save-json', action='store_true', help='save a cocoapi-compatible JSON results file')

其次将下面这句代码注释掉:

opt.save_json |= opt.data.endswith('coco.yaml') 报错处理 报错1: File "/home/ubuntu/anaconda3/envs/python/lib/python3.8/site-packages/torch/serialization.py", line 1033, in _legacy_load magic_number = pickle_module.load(f, **pickle_load_args) _pickle.UnpicklingError: STACK_GLOBAL requires str

将数据集中的cache文件删除即可,然后重新运行。

在这里插入图片描述

运行结果如下,说明该程序已经没有问题了。

在这里插入图片描述

报错2:

可以看到下面报错,这是由于我们的COCO数据集验证时需要json格式的标注文件,而这个文件要放在./coco/annotations/文件夹下,那么我们将instances_val2017.json文件复制一份到yolov7根目录的./coco/annotations即可

Speed: 9.4/1.1/10.4 ms inference/NMS/total per 640x640 image at batch-size 4 Evaluating pycocotools mAP... saving runs/test/exp7/best_predictions.json... loading annotations into memory... pycocotools unable to run: [Errno 2] No such file or directory: './coco/annotations/instances_val2017.json'

需要注意的是yolov5在这里的报错与yolov7是有些许不同的: 这里他要存放json的地址为../datasets/coco/annotations/instances_val2017.json

loading annotations into memory... pycocotools unable to run: [Errno 2] No such file or directory: '../datasets/coco/annotations/instances_val2017.json' Results saved to runs/val/exp3 报错3

然而yolov7却出现下面问题:

在这里插入图片描述

起初我是先做的yolov7的,开始以为是数据集出现了问题,然而在yolov5中却是正常的,那么就只能是yolov7的修改方式与yolov5不同所导致的。 看到有人说test.py文件要将is_coco手动设置为True,不知道为什么这里结果是False,手动设置为True的话会执行下面coco80->91的函数,因为coco标签文件是到91的,如果不转评估结果都是0。但博主实验后发现不行。

随后在查阅资料时误打误撞,将下面这句代码修改,说实话真不知道为啥这样改,但结果就是成功了。 原本代码

'category_id': coco91class[int(p[5])] if is_coco else int(p[5]),

修改后代码:

'category_id': int(p[5])

在这里插入图片描述

再次运行就OK了。

yolov7运行结果

在这里插入图片描述

yolov5运行结果

yolov5的运行效果如下图所示,但却发现yolo的评价结果值要比coco的值高了一点,不过倒也无伤大雅。

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有